This disclosure relates generally to obtaining video data by a client device, and more specifically to an architecture for augmenting the video data obtained by the client device with additional content when the obtained video data is rendered.
Users of client devices increasingly capture video data via image capture devices included in various client devices and share the captured video with other users. For example, through an application associated with an online system executing on a client device, a user of the client device distributes video data captured via the client device, or otherwise obtained via the client device, to other users of the online system. To encourage user engagement, many applications allow a user of the client device to modify video data obtained by the client device and subsequently present the modified video data.
For example, various applications allow users to apply filters to video data obtained by a client device or to overlay text or images onto portions of video data obtained by the client device. However, conventional applications for modifying video data receive modifications to the video data and extract information from the video data to perform the modifications when the video data is rendered. For example, to overlay images on a face detected in the video data, a conventional application applies one or more detection methods to the video data while the video data is rendered and modifies the video data by overlaying the images on regions of the video data from which faces are detected. As methods for extracting information from video data are computationally intensive, extracting the information while rendering the video data and performing the modifications may more rapidly drain resources of a client device, such as power stored in a battery or other power supply of the client device.